In formal logic, the open world assumption is the assumption that the truth-value of a statement is independent of whether or not it is known by any single observer or agent to be true. It is the opposite of the closed world assumption, which holds that any statement that is not known to be true is false. The open world assumption (OWA) is used in knowledge representation to codify the informal notion that in general no single agent or observer has complete knowledge, and therefore cannot make the closed world assumption. The OWA limits the kinds of inference and deductions an agent can make to those that follow from statements that are known to the agent to be true. In contrast, the closed world assumption allows an agent to infer, from its lack of knowledge of a statement being true, anything that follows from that statement being false.
Heuristically, the open world assumption applies when we represent knowledge within a system as we discover it, and where we cannot guarantee that we have discovered or will discover complete information. In the OWA, statements about knowledge that are not included in or inferred from the knowledge explicitly recorded in the system may be considered unknown, rather than wrong or false.
Semantic Web languages such as OWL make the open world assumption. The absence of a particular statement within the web means, in principle, that the statement has not been made explicitly yet, irrespectively of whether it would be true or not, and irrespectively of whether we believe (or would believe) that it is (or would be) true or not. In essence, from the absence of a statement alone, a deductive reasoner cannot (and must not) infer that the statement is false.
Many procedural programming languages and databases make the closed world assumption. For example, if a typical airline database does not contain a seat assignment for a traveler, it means the traveler has not checked in. The closed world assumption typically applies when a system has complete control over information; this is the case with many database applications where the database transaction system acts as a central broker and arbiter of concurrent requests by multiple independent clients (e.g., airline booking agents). There are however many databases with incomplete information: one cannot assume that because there is no mention on a patient's history of a particular allergy, that the patient does not suffer from that allergy.
Example
Statement: "Mary" "is a citizen of" "France"
Question: Is Paul a citizen of France?
"Closed world" (for example SQL) answer: No. "Open world" answer: unknown.
Under OWA, failure to derive a fact does not imply the opposite. For example, assume we only know that Mary is a citizen of France. From this information we can neither conclude that Paul is not a citizen of France, nor that he is. Therefore, we admit the fact that our knowledge of the world is incomplete. The open world assumption is closely related to the monotonic nature of first-order logic: adding new information never falsifies a previous conclusion. Namely, if we subsequently learn that Paul is also a citizen of France, this does not change any earlier positive or negative conclusions.
The language of logic programs with strong negation allows us to postulate the closed world assumption for some predicates and leave the other predicates in the realm of the open world assumption.